/**********************************************************************************************************************
 *
 * Project:    mGameEngine
 * File:       glslloader.h
 * Author:     karooolek
 * Created on: 2009-03-25
 *
 **********************************************************************************************************************/

#ifndef GLSLLOADER_H_
#define GLSLLOADER_H_

#include "gpuprogramfactory.h"
#include "../common.h"

namespace mGameEngine
{
namespace Graphics
{

/**
 * GLSL GPU program file loader.
 */
class GLSLLoader : public GPUProgramFactory, public FileLoader
{
public:
    /**
     * Create GLSL GPU program loader with no file name specified.
     */
    GLSLLoader();

    /**
     * Create GLSL GPU program file loader with specified file name.
     * @param filename GLSL GPU program file name to load.
     */
    GLSLLoader(const String &filename);

    /**
     * Destroy GLSL GPU program file loader.
     */
    ~GLSLLoader();

    /**
     * Load GPU program from GLSL file.
     */
    void load();
};

}
}

#endif // GLSLLOADER_H_
